贪⼼的思路，局部最优：让绝对值⼤的负数变为正数，当前数值达到最⼤，整体最优：整个数组和达到最⼤。
局部最优可以推出全局最优。

第⼀步：将数组按照绝对值⼤⼩从⼤到⼩排序，注意要按照绝对值的⼤⼩
第⼆步：从前向后遍历，遇到负数将其变为正数，同时K--
第三步：如果K还⼤于0，那么反复转变数值最⼩的元素，将K⽤完
第四步：求和

class Solution {
public:
    static bool cmp(int a,int b)
    {
        return abs(a) > abs(b);
    }
    int largestSumAfterKNegations(vector<int>& nums, int k) {
        //绝对值的从大到小排序
        //让最大的负数放到前面
        sort(nums.begin(),nums.end(),cmp);
        for(int i = 0 ; i < nums.size() ; i ++ )
        {
            //每次试图都让负数变成正数
            if(nums[i] < 0 && k > 0) 
            {
                nums[i] *= -1;
                k--;
            }
        }
        //如果此时k还是大于0，那么就反复替换排完序最小的那个元素，直到k被清空
        while(k > 0)
        {
            nums[nums.size() - 1] *= -1;
            k--;
        }
        int count = 0;
        for(int a : nums)//新式循环
        {
            count += a;
        }
        return count;
    }
};